With more and more products being produced by a series of different manufactures or value-added resellers, maintaining security during manufacture is becoming an increasingly important issue. This may be especially problematic when processor code is being installed by multiple manufacturers. For example, one manufacturer may produce a processor chip containing code for operating a basic cell phone, and then pass it to another manufacturer to install code that is specific to a particular type of communications technology, and then pass it to a third manufacturer to install code for features that are specific to a particular brand and model of cell phone. A particular manufacturer may wish to prevent the other manufacturers from modifying (deliberately or inadvertently), or even viewing, its proprietary code, and may further wish to prevent the other manufacturers from creating code that causes interoperability problems with its previously working code. In addition, the same debug interface may be used for accessing trusted and non-trusted areas.
Historically, security features have been focused on reducing the probability of tampering with the code of a finished product during operation of the finished product. However, that approach does little to enable the various manufacturers to maintain security with respect to one another, since a given manufacturer may have access to the code installed by the previous manufacturer. These issues may be especially problematic during code debug operations, when the debug interface allows the current manufacturer to have access to resources deep within the chip, including both areas that may be modified freely and areas that are to be protected from modification.